Conventionally, voice data remains separate from network data traffic. In particular, many enterprises will have a data network connecting a variety of workstations, and separate voice system, such as a public branch exchange (PBX), for example. As data networks proliferate, it is becoming an increasingly desirable goal to integrate transmission of voice and data.
Transmitting data over voice systems can be inefficient, as such systems typically transmit voice and data at a synchronous rate. In synchronous systems, frames can be allocated portions of bandwidth, usually formed according to a time division multiplexing (TDM) scheme. Once a circuit is assigned, bandwidth for such a circuit may always be in use, and not available for other purposes.
Transmitting voice over a data network (voice over network) can provide advantages over other approaches. Voice over network can take advantage of existing network structures. Further, as noted above, networks (including the Internet) continue to grow in size and bandwidth. Voice over network can be more efficient than data over voice as such systems are typically packet based. In a packet based system, bandwidth is used as needed. When data is transmitted, a data packet is sent through the network. When voice is needed, a voice packet is transmitted through the network.
Voice over networks can provide additional cost savings as voice may be transmitted between locations without incurring conventional toll charges. This can be particularly true for systems that transmit voice over the Internet.
Many networks can be “connectionless” networks. Connectionless networks can provide multiple possible paths between source and destination. Consequently, voice transmitted over a connectionless network may be more reliable, as voice data can reach a destination even if some of the network nodes are not operational.
Voice over data networks may provide additional features in a cost-effective fashion. In a particular, transmitting voice over a data network may allow for “multicasting” of voice data (transmission of voice data to multiple destinations) and/or mixed media transmissions (voice and data) as but two examples.
One type of voice of network approach utilizes the Internet protocol (IP), and is often referred to as voice-over-IP (VoIP).
Data networks may take a variety of forms. As noted above, a data network may be a connectionless network, including the Internet. Further, a network may include portions that overlay and/or integrate connection-oriented legs. Such systems include IP over asynchronous transfer mode (ATM), IP switching, multiprotocol label switching (MPLS), or other similar packet switching approaches.
Various proposals for implementing voice over data networks have been proposed. One general approach is the idea of a network “gateway.” A network gateway can provide access to a network (such as the Internet) for a variety of conventional voice data sources (voice channels). As but one example, a network gateway can be an IP gateway that integrates a PBX with an IP network. In such an arrangement, users may make telephone calls that appear entirely conventional, but are in fact being transmitted over a data network.
One drawback associated with voice over data networks can be latency. Latency is the delay introduced by the system into a voice transmission. Various sources may contribute to latency. A transmitting source introduces some delay in placing the voice into packet form (i.e., “packetization” delay). Typically the voice data can be encoded and then placed in packet form. Transmission of the voice over a data network can also introduce latency (i.e., “transmission” delay). Routing from node to node, or along a switching path, can consume additional time. Finally, a receiving destination can introduce delay. Upon receipt, voice data must be extracted from a packet and then transmitted along an appropriate voice channel.
Thus, decreasing latency can provide a valuable contribution to voice over data networking.
Conventionally, a data network packet may include a “header” portion that may establish how a packet is transmitted and processed, and a payload portion that includes data. One example of a conventional packet is set forth in FIG. 9. FIG. 9 shows a packet having a header portion and a payload portion. A header 900 portion includes a data link layer header 900-1, an IP header 900-2, and a User Datagram Protocol (UDP) header 900-3. A payload portion 902 may be a UDP datagram that includes voice data.
A conventional network voice processing system can receive a voice data packet and then store the packet in a memory. The packet may then be processed by a processor according to a predetermined set of instructions. For example, various fields may be read by the processor, and according to criteria, the voice data may be forwarded and/or decoded. For example, voice data may be sent to another network endpoint (e.g., an IP endpoint) or sent to a synchronous system, such as a TDM network.
While conventional packet forwarding of voice a data network may provide adequate results, this may not always be the case. To help improve the processing of time dependent data, including voice data, a number of protocols have been proposed. One such protocol is the Real-Time Transport Protocol (RTP). An RTP header can provide sequence and timestamp information than may help assemble voice data once it has been received. Such information can account for out of sequence packets and/or varying packet transmission speeds.
Data for a given voice channel may be transported within its own packet. However, it may be possible to transport more than one voice channel in the same packet. This may be particularly applicable to IP gateways that can serve as a common destination for multiple voice channels. Various proposals have been set forth for including more than one voice channel in a data packet. Consequently, voice over data networks can include data packets for single voice channels (“simplex” voice packets) as well as data packets for multiple voice channels (“multiplexed” voice packets).
The need for processing both simplex and multiplex voice data packets may further contribute to overall packetization latency between a voice source and the resulting audio destination. Further, the processing of simplex and multiplexed voice data packets may add complexity to conventional systems that store the packet to memory and then deprocess the packet according to an instruction set. Such deprocessing of multiplexed voice packets includes extracting the various different voice channels included within a payload.
It would be desirable to arrive at a system that can improve the speed and efficiency at which simplex and multiplexed voice data packets are processed.